package com.djf.djfcs.canal;

/**
 * Canal数据监听器接口
 */
public interface CanalDataListener {
    
    /**
     * 处理数据变更事件
     * @param event 数据变更事件
     */
    void onDataChange(CanalDataChangeEvent event);
    
    /**
     * 获取监听的数据库名
     * @return 数据库名，为空表示监听所有数据库
     */
    default String getDatabase() {
        return null;
    }
    
    /**
     * 获取监听的表名
     * @return 表名，为空表示监听所有表
     */
    default String getTable() {
        return null;
    }
    
    /**
     * 获取监听的事件类型
     * @return 事件类型数组，为空表示监听所有事件类型
     */
    default String[] getEventTypes() {
        return new String[]{"INSERT", "UPDATE", "DELETE"};
    }
}